xl: tsc_mode parameter in guest configuration file
authorKeir Fraser <keir.fraser@citrix.com>
Tue, 6 Apr 2010 05:56:20 +0000 (06:56 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Tue, 6 Apr 2010 05:56:20 +0000 (06:56 +0100)
Signed-off-by: Eric Chanudet <eric.chanudet@citrix.com>
Acked-by: Vincent Hanquez <vincent.hanquez@eu.citrix.com>
Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
tools/libxl/libxl.h
tools/libxl/libxl_dom.c
tools/libxl/xl.c

index 987722547d59f9bc384d87bd0c2f5348ea0e9fdc..959d9f5b20af7957b7950ecf5740974a5b8dafdb 100644 (file)
@@ -74,6 +74,7 @@ typedef struct {
     int vpt_align;
     int max_vcpus;
     int cur_vcpus;
+    int tsc_mode;
     uint32_t max_memkb;
     uint32_t target_memkb;
     uint32_t video_memkb;
index 7196aa869e79b601a1cece66d3f8fef33fe5da4f..c2137929dda14e8bec30bbd7f6243c87351f4c02 100644 (file)
@@ -72,6 +72,7 @@ int build_pre(struct libxl_ctx *ctx, uint32_t domid,
     xc_domain_set_memmap_limit(ctx->xch, domid, 
             (info->hvm) ? info->max_memkb : 
             (info->max_memkb + info->u.pv.slack_memkb));
+    xc_domain_set_tsc_info(ctx->xch, domid, info->tsc_mode, 0, 0, 0);
 
     if (info->hvm) {
         unsigned long shadow;
index 178bea5b92d7d41b020a7ebde1e1b109c001e547..d99e6376e6575d6fc27c86ad08180d94ff2d2c59 100644 (file)
@@ -235,6 +235,7 @@ static void printf_info(libxl_domain_create_info *c_info,
     printf("hpet: %d\n", b_info->hpet);
     printf("vpt_align: %d\n", b_info->vpt_align);
     printf("max_vcpus: %d\n", b_info->max_vcpus);
+    printf("tsc_mode: %d\n", b_info->tsc_mode);
     printf("max_memkb: %d\n", b_info->max_memkb);
     printf("target_memkb: %d\n", b_info->target_memkb);
     printf("kernel: %s\n", b_info->kernel);
@@ -382,6 +383,9 @@ static void parse_config_file(const char *filename,
         b_info->target_memkb = b_info->max_memkb;
     }
 
+    if (!xlu_cfg_get_long(config, "tsc_mode", &l))
+        b_info->tsc_mode = l;
+
     if (!xlu_cfg_get_long (config, "shadow_memory", &l))
         b_info->shadow_memkb = l * 1024;